#if !defined (_SEMAPHORE_H_)
#define _SEMAPHORE_H_

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>

#define DB	1	/* protège la mémoire partagée */
#define MUTEX	2	/* protège le compteur de processus lecteurs */

/*
 * @pre  un identifiant unique pour semaphore et un
 * 		 nombre d'entité a créer
 * @post initialise un semaphore avec 3 entités
 */
extern int semInit(key_t key, int size);

/*
 * @pre  un semaphore initialisé par semInit
 * @post incremente le semaphore num de l'ensemble semid
 */
extern void semUp(int semid, int num);

/*
 * @pre  un semaphore initialise par semInit
 * @post decremente le semaphore num de l'ensemble semid
 */
extern void semDown(int semid, int num);


#endif /*SEMAPHORE_H_*/
